package business.domaine;

import java.util.List;

import dao.IDao;

import entites.Domaine;
import entites.Mention;
import entites.Personne;
import entites.Semestre;
import entites.UniteEnseignement;

public class DomaineManager implements IDomaineManager 
{

	// couche [dao]
	private IDao dao;

	public IDao getDao() {
		return dao;
	}

	public void setDao(IDao dao) {
		this.dao = dao;
	}
	
	
	//======================================================DOMAINE===========================================================
		
	
	public void addMentionToDomaine(Mention mention, Domaine domaine) {
		
		dao.addMentionToDomaine(mention, domaine);
	}

	
	
	public void addResponsableToDomaine(Personne personne,Domaine domaine) {
		
		System.err.println("rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
		dao.addResponsableToDomaine(personne, domaine);
		

	}

	
	
	public void addSemestreToDomaine(Semestre semestre,Domaine domaine) {
		
		dao.addSemestreToDomaine(semestre, domaine);
		
	}

	
	
	public void addUeToDomaine(UniteEnseignement uniteEnseignement,Domaine domaine) {
		
		dao.addUeToDomaine(uniteEnseignement, domaine);
	}

	
	public List<Mention> selectMentionByDomaine(Domaine domaine) {
		
		return dao.findAllMention();
	}
	
	
	
	public void deleteDomaine(Integer id) {
		
		dao.deleteDomaine(id);
	}
	
	
	
	public void deleteDomaines(Domaine[] domaines) {
		
		for (Domaine d : domaines) {
			dao.deleteDomaine(d.getId());
		
		}
	}
	
	
	
	
	
	public Domaine insertDomaine(Domaine domaine) {
		
		return dao.saveDomaine(domaine);
	}

	
	
	public Domaine[] insertDomaines(Domaine[] domaines) {
		
		Domaine[] domaines2 = new Domaine[domaines.length];
		for (int i = 0; i < domaines.length; i++) {
			domaines2[i] = dao.saveDomaine(domaines[i]);
		}
		return domaines2;	
		
	}	

	
	
	public Domaine selectDomaineById(Integer id) {
		
		return dao.findDomaine(id);
	}
	
	
	
	public List<Domaine> selectDomaines() {
		
		return dao.findAllDomaine();
	}
	
	
	
	public List<Domaine> selectDomainesByLibelle(String modele) {
		
		return dao.findAllDomaineLike(modele);
	}
	
	
	
	public List<Semestre> selectSemestreByDomaine(Domaine domaine) {
		
		return dao.findAllSemestre();
	}

	
	public List<UniteEnseignement> selectUeByDomaine(Domaine domaine) {
		
		return dao.findAllUE();
	}	
	

	
	public Domaine updateDomaine(Domaine domaine) {
		
		return dao.updateDomaine(domaine);
	}

	
	
	public Domaine[] updateDomaines(Domaine[] domaines) {
		
		Domaine[] domaines2 = new Domaine[domaines.length];
		for (int i = 0; i < domaines.length; i++) {
			domaines2[i] = dao.updateDomaine(domaines[i]);
		}
		return domaines;	
	}

	
}
